package com.zhengke.controller.hubf;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

@Controller
@RequestMapping("file")
public class IFileUploadController {

	/**
	 * 文件上传的实现保存到E:/upload
	 */
	@RequestMapping("/gotoUpload.do")
	public String upload() {
		return "/fileUpload";
	}

	/**
	 * MultipartFile 这个参数的类型就是上传文件自己带的一个类用来接受从前台上传过来的图片的一些信息
	 * 
	 * @param mf
	 * @return
	 * @throws IOException
	 */
	@RequestMapping("/getPictureMessage.do")
	@ResponseBody
	public Map<String, Object> getPictureMessage(MultipartFile mf) throws IOException {

		System.out.println(mf);// org.springframework.web.multipart.commons.CommonsMultipartFile@45dc1f4f
		System.out.println(mf.getContentType());// 获取上传文件的类型image/jpeg
		System.out.println(mf.getName());// 获取表单中的name属性的值mf
		System.out.println(mf.getOriginalFilename());// 获取上传的文件的名称QQ图片20190620083506.jpg
														// System.out.println(mf.getSize());//获取上传文件的大小30443
		System.out.println(mf.getInputStream());// 文件流java.io.FileInputStream@75edf4aa
		// 获取上传的文件的名称
		String filename = mf.getOriginalFilename();
		// 创建文件夹对象
		File fileMkdir = new File("E:/upload/images");
		// 判断当前的文件夹是否存在如果不存在就新创建当前的名称的文件
		if (!fileMkdir.exists()) {
			fileMkdir.mkdirs();
		}
		// 将图片放到里面去
		File newFile = new File(fileMkdir, filename);
		// 将接收到的文件传输到给定的目标文件
		mf.transferTo(newFile);
		// 由于layui接口中需要特定格式的返回数据所以就需将固定的格式返回出去
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("code", 0);
		map.put("msg", "");
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("src", "E:/pictureUpload");// 其中的参数指的是文件下载的地址
		map.put("data", data);
		return map;
	}
	
}
